package beans;

import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Vector;
import model.Util;

/**
 * Klasa koja spaja sva mesta, ima cenu, vise povlastica za svaki deo(TripPart)
 * Ova klasa ce se samo zatrazivati sa servera od Andoida, a 
 * opcione simpleEntity klase(MestoBean, BenCatBean i TripCatBean)
 * */
@SuppressWarnings("serial")
public class TripLine implements Serializable{
	
	//obavezno sortirane po redusledu OD-DO
	Vector<TripPartBean> putneDuzi;
	
	//opisni atributi
	Integer brojPresed;
	Double ukupnaCena;
	MestoBean mestoOd;
	MestoBean mestoDo;
	Date polazak;
	Date dolazak;
	Date trajanje;

	public TripLine(Vector<TripPartBean> putneDuzi) {
		this.putneDuzi = putneDuzi;
		this.brojPresed = putneDuzi.size()-1;
		//pozlaziste je polaziste iz prvve, a dolaziste iz zadnje putne duzi
		this.mestoOd = putneDuzi.elementAt(0).getMestoOd();
		this.mestoDo = putneDuzi.elementAt(putneDuzi.size()-1).getMestoDo();
		//isto kao za mesta
		this.polazak = putneDuzi.elementAt(0).getPolazak();
		this.dolazak = putneDuzi.elementAt(putneDuzi.size()-1).getDolazak();
		//sumiramo ukupnu cenu		
		this.ukupnaCena = (double) 0;		
		for(TripPartBean trip : putneDuzi){
			ukupnaCena += trip.getCena();
		}
		this.trajanje = Util.subTwoDates(polazak, dolazak);
	}
	
	public Vector<TripPartBean> getPutneDuzi() {
		return putneDuzi;
	}
	public void setPutneDuzi(Vector<TripPartBean> putneDuzi) {
		this.putneDuzi = putneDuzi;
	}
	public Integer getBrojPresed() {
		return brojPresed;
	}
	public void setBrojPresed(Integer brojPresed) {
		this.brojPresed = brojPresed;
	}
	public Double getUkupnaCena() {
		return ukupnaCena;
	}
	public void setUkupnaCena(Double ukupnaCena) {
		this.ukupnaCena = ukupnaCena;
	}
	public MestoBean getMestoOd() {
		return mestoOd;
	}
	public void setMestoOd(MestoBean mestoOd) {
		this.mestoOd = mestoOd;
	}
	public MestoBean getMestoDo() {
		return mestoDo;
	}
	public void setMestoDo(MestoBean mestoDo) {
		this.mestoDo = mestoDo;
	}
	public Date getPolazak() {
		return polazak;
	}
	public void setPolazak(Date polazak) {
		this.polazak = polazak;
	}
	public Date getDolazak() {
		return dolazak;
	}
	public void setDolazak(Date dolazak) {
		this.dolazak = dolazak;
	}
	public Date getTrajanje() {
		return trajanje;
	}
	public void setTrajanje(Date trajanje) {
		this.trajanje = trajanje;
	}
	
	@Override
	public String toString() {
		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
		String retVal = "brojPresed: " + brojPresed + ", ukupnaCena: " + ukupnaCena
						+ " , mestoOd: " + mestoOd + " , mestoDo" + mestoDo
						+ " , polazak: " + sdf.format(polazak) + " , dolazak: " + sdf.format(dolazak)
						+ " , trajanje: " + trajanje;
		return retVal;
	}	
	
}


